﻿namespace SPCAFContrib.Entities.Consts
{
    public static class CheckIDs
    {
        #region properties

        public const string SPCAFContribRulePrefix = "CSC";
        public const string SPCAFContribMetricPrefix = "CSM";
        public const string SPCAFContribInventoryPrefix = "CSI";

        public const string SPCAFContribCategory = "51";

        #endregion

        public static class Rules
        {
            public static class TemplateFiles
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.TemplateFiles;

                public const string UnresolvedTokenAssemblyFullName = Prefix + "01";
                public const string UnresolvedTokenAssemblyFullName_HelpUrl = HelpSite.HelpPageUrl + UnresolvedTokenAssemblyFullName;
            }

            public static class ListInstance
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.ListInstance;

                public const string AvoidDataRowsInListInstances = Prefix + "01";
                public const string AvoidDataRowsInListInstances_HelpUrl = HelpSite.HelpPageUrl + AvoidDataRowsInListInstances;

                public const string UniqueListInstanceUrl = Prefix + "02";
                public const string UniqueListInstanceUrl_HelpUrl = HelpSite.HelpPageUrl + UniqueListInstanceUrl;

                public const string DoNotUseSystemListNames = Prefix + "03";
                public const string DoNotUseSystemListNames_HelpUrl = HelpSite.HelpPageUrl + DoNotUseSystemListNames;

                public const string UniqueListInstanceTitle = Prefix + "04";
                public const string UniqueListInstanceTitle_HelpUrl = HelpSite.HelpPageUrl + UniqueListInstanceTitle;

                public const string WrongFeatureIdInListInstance = Prefix + "05";
                public const string WrongFeatureIdInListInstance_HelpUrl = HelpSite.HelpPageUrl + WrongFeatureIdInListInstance;

            }

            public static class ASPXMasterPage
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.MasterPage;

                public const string AvoidDollarGlobalVariableInMasterPage = Prefix + "01";
                public const string AvoidDollarGlobalVariableInMasterPage_HelpUrl = HelpSite.HelpPageUrl + AvoidDollarGlobalVariableInMasterPage;

                public const string SPDataSourceScopeDoesNotDefinedInMasterPage = Prefix + "02";
                public const string SPDataSourceScopeDoesNotDefinedInMasterPage_HelpUrl = HelpSite.HelpPageUrl + SPDataSourceScopeDoesNotDefinedInMasterPage;

                public const string AvoidJQueryDocumentReadyInMasterPage = Prefix + "03";
                public const string AvoidJQueryDocumentReadyInMasterPage_HelpUrl = HelpSite.HelpPageUrl + AvoidJQueryDocumentReadyInMasterPage;

                public const string AvoidUsingUpdatePanelInMasterPage = Prefix + "04";
                public const string AvoidUsingUpdatePanelInMasterPage_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingUpdatePanelInMasterPage;

                public const string SetAutoGenerateColumnsForSPGridViewInMasterPage = Prefix + "05";
                public const string SetAutoGenerateColumnsForSPGridViewInMasterPage_HelpUrl = HelpSite.HelpPageUrl + SetAutoGenerateColumnsForSPGridViewInMasterPage;
            }

            public static class ASPXPage
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.ASPXPage;
                
                public const string AvoidDollarGlobalVariableInPage = Prefix + "01";
                public const string AvoidDollarGlobalVariableInPage_HelpUrl = HelpSite.HelpPageUrl + AvoidDollarGlobalVariableInPage;

                public const string SPDataSourceScopeDoesNotDefinedInPage = Prefix + "02";
                public const string SPDataSourceScopeDoesNotDefinedInPage_HelpUrl = HelpSite.HelpPageUrl + SPDataSourceScopeDoesNotDefinedInPage;

                public const string AvoidJQueryDocumentReadyInPage = Prefix + "03";
                public const string AvoidJQueryDocumentReadyInPage_HelpUrl = HelpSite.HelpPageUrl + AvoidJQueryDocumentReadyInPage;

                public const string AvoidUsingUpdatePanelInPage = Prefix + "04";
                public const string AvoidUsingUpdatePanelInPage_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingUpdatePanelInPage; 

                public const string SetAutoGenerateColumnsForSPGridViewInPage = Prefix + "05";
                public const string SetAutoGenerateColumnsForSPGridViewInPage_HelpUrl = HelpSite.HelpPageUrl + SetAutoGenerateColumnsForSPGridViewInPage;
            }

            public static class ASCXFile
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.ASCXControl;

                public const string AvoidDollarGlobalVariableInControl = Prefix + "01";
                public const string AvoidDollarGlobalVariableInControl_HelpUrl = HelpSite.HelpPageUrl + AvoidDollarGlobalVariableInControl;

                public const string SPDataSourceScopeDoesNotDefinedInControl = Prefix + "02";
                public const string SPDataSourceScopeDoesNotDefinedInControl_HelpUrl = HelpSite.HelpPageUrl + SPDataSourceScopeDoesNotDefinedInControl;
                
                public const string AvoidUsingRenderingTemplate = Prefix + "03";
                public const string AvoidUsingRenderingTemplate_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingRenderingTemplate;

                public const string AvoidJQueryDocumentReadyInControl = Prefix + "04";
                public const string AvoidJQueryDocumentReadyInControl_HelpUrl = HelpSite.HelpPageUrl + AvoidJQueryDocumentReadyInControl;

                public const string AvoidUsingUpdatePanelInControl = Prefix + "05";
                public const string AvoidUsingUpdatePanelInControl_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingUpdatePanelInControl;

                public const string SetAutoGenerateColumnsForSPGridViewInControl = Prefix + "06";
                public const string SetAutoGenerateColumnsForSPGridViewInControl_HelpUrl = HelpSite.HelpPageUrl + SetAutoGenerateColumnsForSPGridViewInControl;
            }

            public static class General
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.General;

                public const string PowerShellHostAssemblyFileReferenceRule = Prefix + "01";
                public const string PowerShellHostFeatureDefinitionRule = Prefix + "02";

                public const string LoggerStatisticCollector = Prefix + "03";
                public const string LoggerStatisticCollector_HelpUrl = HelpSite.HelpPageUrl + LoggerStatisticCollector;

                public const string NotProvisionedEntity = Prefix + "04";
                public const string NotProvisionedEntity_HelpUrl = HelpSite.HelpPageUrl + NotProvisionedEntity;
            }

            public static class ContentType
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.ContentType;

                public const string AvoidListContentTypes = Prefix + "01";
                public const string AvoidListContentTypes_HelpUrl = HelpSite.HelpPageUrl + AvoidListContentTypes;

                public const string DoNotDefineMultipleContentTypeGroupInOneElementFile = Prefix + "02";
                public const string DoNotDefineMultipleContentTypeGroupInOneElementFile_HelpUrl = HelpSite.HelpPageUrl + DoNotDefineMultipleContentTypeGroupInOneElementFile;
                
                public const string DeployContentTypesCorrectly = Prefix + "03";
                public const string DeployContentTypesCorrectly_HelpUrl = HelpSite.HelpPageUrl + DeployContentTypesCorrectly;

                public const string ConsiderOverwriteAttributeForContentType = Prefix + "04";
                public const string ConsiderOverwriteAttributeForContentType_HelpUrl = HelpSite.HelpPageUrl + ConsiderOverwriteAttributeForContentType;

                public const string AvoidCommentsForContentType = Prefix + "05";
                public const string AvoidCommentsForContentType_HelpUrl = HelpSite.HelpPageUrl + AvoidCommentsForContentType;
            }

            public static class ListTemplate
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.ListTemplate;

                public const string ConsiderHiddenListTemplates = Prefix + "01";
                public const string ConsiderHiddenListTemplates_HelpUrl = HelpSite.HelpPageUrl + ConsiderHiddenListTemplates;

                public const string DeclareEmptyFieldsElement = Prefix + "02";
                public const string DeclareEmptyFieldsElement_HelpUrl = HelpSite.HelpPageUrl + DeclareEmptyFieldsElement;

                public const string DoNotDeployTaxonomyFieldsInList = Prefix + "03";
                public const string DoNotDeployTaxonomyFieldsInList_HelpUrl = HelpSite.HelpPageUrl + DoNotDeployTaxonomyFieldsInList;

                public const string EnsureFolderContentTypeInListDefinition = Prefix + "04";
                public const string EnsureFolderContentTypeInListDefinition_HelpUrl = HelpSite.HelpPageUrl + EnsureFolderContentTypeInListDefinition;

                public const string DoNotAllowDeletionForList = Prefix + "05";
                public const string DoNotAllowDeletionForList_HelpUrl = HelpSite.HelpPageUrl + DoNotAllowDeletionForList;

                public const string AddClientSideTemplatesForSPView = Prefix + "06";
            }

            public static class FieldTemplate
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.Field;

                public const string DeployTaxonomyFieldsCorrectly = Prefix + "01";
                public const string DeployTaxonomyFieldsCorrectly_HelpUrl = HelpSite.HelpPageUrl + DeployTaxonomyFieldsCorrectly;

                public const string DoNotDefineMultipleFieldGroupInOneElementFile = Prefix + "02";
                public const string DoNotDefineMultipleFieldGroupInOneElementFile_HelpUrl = HelpSite.HelpPageUrl + DoNotDefineMultipleFieldGroupInOneElementFile;

                public const string DeployFieldsCorrectly = Prefix + "03";
                public const string DeployFieldsCorrectly_HelpUrl = HelpSite.HelpPageUrl + DeployFieldsCorrectly;

                public const string ConsiderOverwriteAttributeForField = Prefix + "04";
                public const string ConsiderOverwriteAttributeForField_HelpUrl = HelpSite.HelpPageUrl + ConsiderOverwriteAttributeForField;

                public const string FieldIdShouldBeUppercase = Prefix + "05";
                public const string FieldIdShouldBeUppercase_HelpUrl = HelpSite.HelpPageUrl + FieldIdShouldBeUppercase;

                public const string NameWithPictureForUserField = Prefix + "06";
                public const string NameWithPictureForUserField_HelpUrl = HelpSite.HelpPageUrl + NameWithPictureForUserField;

                public const string DoNotAllowDeletionForField = Prefix + "07";
                public const string DoNotAllowDeletionForField_HelpUrl = HelpSite.HelpPageUrl + DoNotAllowDeletionForField;

                public const string DoNotUseUnderscoreInFieldName = Prefix + "08";
                public const string DoNotUseUnderscoreInFieldName_HelpUrl = HelpSite.HelpPageUrl + DoNotUseUnderscoreInFieldName;
                
                public const string UniqueFieldName = Prefix + "09";
                public const string UniqueFieldName_HelpUrl = HelpSite.HelpPageUrl + UniqueFieldName;

                public const string UniqueFieldStaticName = Prefix + "10";
                public const string UniqueFieldStaticName_HelpUrl = HelpSite.HelpPageUrl + UniqueFieldStaticName;

                public const string FieldNameLengthLimitExceed = Prefix + "11";
                public const string FieldNameLengthLimitExceed_HelpUrl = HelpSite.HelpPageUrl + FieldNameLengthLimitExceed;

                public const string DoNotSpecifyIndexedAttributeForNoteField = Prefix + "12";
                public const string DoNotSpecifyIndexedAttributeForNoteField_HelpUrl = HelpSite.HelpPageUrl + DoNotSpecifyIndexedAttributeForNoteField;

                public const string DifferentInternalAndStaticFieldNames = Prefix + "13";
                public const string DifferentInternalAndStaticFieldNames_HelpUrl = HelpSite.HelpPageUrl + DifferentInternalAndStaticFieldNames;

                public const string DoNotProvisionLookupFieldBeforeRelatedList = Prefix + "14";
                public const string DoNotProvisionLookupFieldBeforeRelatedList_HelpUrl = HelpSite.HelpPageUrl + DoNotProvisionLookupFieldBeforeRelatedList;

                public const string MixedIDInFieldName = Prefix + "15";
                public const string MixedIDInFieldName_HelpUrl = HelpSite.HelpPageUrl + MixedIDInFieldName;
                
            }

            public static class WebPart
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.WebPart;

                public const string WebPartDefinitionMightBeImproved = Prefix + "01";
                public const string WebPartDefinitionMightBeImproved_HelpUrl = HelpSite.HelpPageUrl + WebPartDefinitionMightBeImproved;

                public const string WebPartModuleDefinitionMightbeImproved = Prefix + "02";
                public const string WebPartModuleDefinitionMightbeImproved_HelpUrl = HelpSite.HelpPageUrl + WebPartModuleDefinitionMightbeImproved;

                public const string AvoidDollarGlobalVariableInWebPart = Prefix + "03";
                public const string AvoidDollarGlobalVariableInWebPart_HelpUrl = HelpSite.HelpPageUrl + AvoidDollarGlobalVariableInWebPart;

                public const string AvoidJQueryDocumentReadyInWebPart = Prefix + "04";
                public const string AvoidJQueryDocumentReadyInWebPart_HelpUrl = HelpSite.HelpPageUrl + AvoidJQueryDocumentReadyInWebPart;
            }

            public static class Assembly
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.Assembly;

                public const string ThreadSleepShouldNotBeUsed = Prefix + "01";
                public const string ThreadSleepShouldNotBeUsed_HelpUrl = HelpSite.HelpPageUrl + ThreadSleepShouldNotBeUsed;

                public const string ConfigurationManagerShouldNotBeUsed = Prefix + "02";
                public const string ConfigurationManagerShouldNotBeUsed_HelpUrl = HelpSite.HelpPageUrl + ConfigurationManagerShouldNotBeUsed;

                public const string AvoidUsingListFieldIterator = Prefix + "03";
                public const string AvoidUsingListFieldIterator_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingListFieldIterator;

                public const string AvoidEnumeratingAllUserProfiles = Prefix + "04";
                public const string AvoidEnumeratingAllUserProfiles_HelpUrl = HelpSite.HelpPageUrl + AvoidEnumeratingAllUserProfiles;

                public const string SPViewScopeDoesNotDefined = Prefix + "05";
                public const string SPViewScopeDoesNotDefined_HelpUrl = HelpSite.HelpPageUrl + SPViewScopeDoesNotDefined;

                public const string UseSecureStoreService = Prefix + "06";
                public const string UseSecureStoreService_HelpUrl = HelpSite.HelpPageUrl + UseSecureStoreService;

                public const string UsingSPWebGetFilePreferable = Prefix + "07";
                public const string UsingSPWebGetFilePreferable_HelpUrl = HelpSite.HelpPageUrl + UsingSPWebGetFilePreferable;

                public const string SPMonitoredScopeShouldBeUsed = Prefix + "08";
                public const string SPMonitoredScopeShouldBeUsed_HelpUrl = HelpSite.HelpPageUrl + SPMonitoredScopeShouldBeUsed;

                public const string InappropriateUsageOfSPListCollection = Prefix + "09";
                public const string InappropriateUsageOfSPListCollection_HelpUrl = HelpSite.HelpPageUrl + InappropriateUsageOfSPListCollection;

                public const string SPQueryScopeDoesNotDefined = Prefix + "10";
                public const string SPQueryScopeDoesNotDefined_HelpUrl = HelpSite.HelpPageUrl + SPQueryScopeDoesNotDefined;

                public const string AvoidUsingAjaxControlToolkit = Prefix + "11";
                public const string AvoidUsingAjaxControlToolkit_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingAjaxControlToolkit;

                public const string DoNotUseDirectorySearcher = Prefix + "12";
                public const string DoNotUseDirectorySearcher_HelpUrl = HelpSite.HelpPageUrl + DoNotUseDirectorySearcher;

                public const string DoNotUseUnsafeTypeConversionOnSPListItem = Prefix + "13";
                public const string DoNotUseUnsafeTypeConversionOnSPListItem_HelpUrl = HelpSite.HelpPageUrl + DoNotUseUnsafeTypeConversionOnSPListItem;

                public const string SPWebEnsureUserMethodUsage = Prefix + "14";
                public const string SPWebEnsureUserMethodUsage_HelpUrl = HelpSite.HelpPageUrl + SPWebEnsureUserMethodUsage;

                public const string SPWebRequestAccessEmailPropertyUsage = Prefix + "15";
                public const string SPWebRequestAccessEmailPropertyUsage_HelpUrl = HelpSite.HelpPageUrl + SPWebRequestAccessEmailPropertyUsage;

                public const string AvoidHeavyOperationsInsideRepeaterItemEventHandlers = Prefix + "16";
                public const string AvoidHeavyOperationsInsideRepeaterItemEventHandlers_HelpUrl = HelpSite.HelpPageUrl + AvoidHeavyOperationsInsideRepeaterItemEventHandlers;

                public const string AvoidInappropriateDataAccess = Prefix + "17";
                public const string AvoidInappropriateDataAccess_HelpUrl = HelpSite.HelpPageUrl + AvoidInappropriateDataAccess;

                public const string SPDataSourceScopeDoesNotDefined = Prefix + "18";
                public const string SPDataSourceScopeDoesNotDefined_HelpUrl = HelpSite.HelpPageUrl + SPDataSourceScopeDoesNotDefined;

                public const string DoNotDeleteUserProfile = Prefix + "19";
                public const string DoNotDeleteUserProfile_HelpUrl = HelpSite.HelpPageUrl + DoNotDeleteUserProfile;

                public const string AvoidObsoleteWebServicesInCode = Prefix + "20";
                public const string AvoidObsoleteWebServicesInCode_HelpUrl = HelpSite.HelpPageUrl + AvoidObsoleteWebServicesInCode;

                public const string AvoidObsoleteWebServicesInJavaScriptFiles = Prefix + "21";
                public const string AvoidObsoleteWebServicesInJavaScriptFiles_HelpUrl = HelpSite.HelpPageUrl + AvoidObsoleteWebServicesInJavaScriptFiles;

                public const string AvoidUsingSPContextOutsideOfWebContext = Prefix + "22";
                public const string AvoidUsingSPContextOutsideOfWebContext_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingSPContextOutsideOfWebContext;

                public const string AvoidJQueryDocumentReadyInCode = Prefix + "23";
                public const string AvoidJQueryDocumentReadyInCode_HelpUrl = HelpSite.HelpPageUrl + AvoidJQueryDocumentReadyInCode;

                public const string CamlexQueryDoubleWhere = Prefix + "24";
                public const string CamlexQueryDoubleWhere_HelpUrl = HelpSite.HelpPageUrl + CamlexQueryDoubleWhere;

                public const string MagicStringShouldNotBeUsed = Prefix + "25";
                public const string MagicStringShouldNotBeUsed_HelpUrl = HelpSite.HelpPageUrl + MagicStringShouldNotBeUsed;

                public const string AvoidUsingSPListItemFile = Prefix + "26";
                public const string AvoidUsingSPListItemFile_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingSPListItemFile;

                public const string InappropriateUsageOfTaxonomyGroupCollection = Prefix + "27";
                public const string InappropriateUsageOfTaxonomyGroupCollection_HelpUrl = HelpSite.HelpPageUrl + InappropriateUsageOfTaxonomyGroupCollection;

                public const string AvoidUnsafeUrlConcatenations = Prefix + "28";
                public const string AvoidUnsafeUrlConcatenations_HelpUrl = HelpSite.HelpPageUrl + AvoidUnsafeUrlConcatenations;

                public const string LoadJavaScriptWithinSandbox = Prefix + "29";
                public const string LoadJavaScriptWithinSandbox_HelpUrl = HelpSite.HelpPageUrl + LoadJavaScriptWithinSandbox;

                public const string RepeatableMagicStringShouldNotBeUsed = Prefix + "30";

                public const string ListModificationFromJob = Prefix + "31";
                public const string ListModificationFromJob_HelpUrl = HelpSite.HelpPageUrl + ListModificationFromJob;

                public const string GetPublishingPages = Prefix + "32";
                public const string GetPublishingPages_HelpUrl = HelpSite.HelpPageUrl + GetPublishingPages;

                public const string AvoidSPObjectsInFields = Prefix + "33";
                public const string AvoidSPObjectsInFields_HelpUrl = HelpSite.HelpPageUrl + AvoidSPObjectsInFields;

                public const string AvoidStaticSPObjectsInFields = Prefix + "34";
                public const string AvoidStaticSPObjectsInFields_HelpUrl = HelpSite.HelpPageUrl + AvoidStaticSPObjectsInFields;

                public const string AvoidSPObjectNameStringComparison = Prefix + "35";
                public const string AvoidSPObjectNameStringComparison_HelpUrl = HelpSite.HelpPageUrl + AvoidSPObjectNameStringComparison;

                public const string DoNotSuppressExceptions = Prefix + "36";
                public const string DoNotSuppressExceptions_HelpUrl = HelpSite.HelpPageUrl + DoNotSuppressExceptions;

                public const string ULSLoggingShouldBeUsed = Prefix + "37";
                public const string ULSLoggingShouldBeUsed_HelpUrl = HelpSite.HelpPageUrl + ULSLoggingShouldBeUsed;

                public const string SpecifySPZoneInSPSite = Prefix + "38";
                public const string SpecifySPZoneInSPSite_HelpUrl = HelpSite.HelpPageUrl + SpecifySPZoneInSPSite;

                public const string NoCustomLogging = Prefix + "39";
                public const string NoCustomLogging_HelpUrl = HelpSite.HelpPageUrl + NoCustomLogging;

                public const string DoNotUseSPWebProperties = Prefix + "40";
                public const string DoNotUseSPWebProperties_HelpUrl = HelpSite.HelpPageUrl + DoNotUseSPWebProperties;

                public const string ULSLoggingInCatchBlock = Prefix + "41";
                public const string ULSLoggingInCatchBlock_HelpUrl = HelpSite.HelpPageUrl + ULSLoggingInCatchBlock;

                public const string AvoidDollarGlobalVariableInCode = Prefix + "42";
                public const string AvoidDollarGlobalVariableInCode_HelpUrl = HelpSite.HelpPageUrl + AvoidDollarGlobalVariableInCode;

                public const string DoNotChangeSPPersistedObject = Prefix + "43";
                public const string DoNotChangeSPPersistedObject_HelpUrl = HelpSite.HelpPageUrl + DoNotChangeSPPersistedObject;

                public const string OutOfContextRWEP = Prefix + "44";
                public const string OutOfContextRWEP_HelpUrl = HelpSite.HelpPageUrl + OutOfContextRWEP;

                public const string DoNotUsePortalLog = Prefix + "45";
                public const string DoNotUsePortalLog_HelpUrl = HelpSite.HelpPageUrl + DoNotUsePortalLog;

                public const string DoNotDisposePersonalSiteWeb = Prefix + "46";
                public const string DoNotDisposePersonalSiteWeb_HelpUrl = HelpSite.HelpPageUrl + DoNotDisposePersonalSiteWeb;

                public const string WrongSPViewUsage = Prefix + "47";
                public const string WrongSPViewUsage_HelpUrl = HelpSite.HelpPageUrl + WrongSPViewUsage;

                public const string AvoidUsingUpdatePanelInCode = Prefix + "48";
                public const string AvoidUsingUpdatePanelInCode_HelpUrl = HelpSite.HelpPageUrl + AvoidUsingUpdatePanelInCode; 

                public const string OutOfContextSPWebPartManager = Prefix + "49";
                public const string OutOfContextSPWebPartManager_HelpUrl = HelpSite.HelpPageUrl + OutOfContextSPWebPartManager;

                public const string PutSPFileExistsIntoTryCatchBlock = Prefix + "50";
                public const string PutSPFileExistsIntoTryCatchBlock_HelpUrl = HelpSite.HelpPageUrl + PutSPFileExistsIntoTryCatchBlock;

                public const string DoNotUseEntityEditorEntities = Prefix + "51";
                public const string DoNotUseEntityEditorEntities_HelpUrl = HelpSite.HelpPageUrl + DoNotUseEntityEditorEntities;

                public const string SendMailFromWcfService = Prefix + "52";
                public const string SendMailFromWcfService_HelpUrl = HelpSite.HelpPageUrl + SendMailFromWcfService;

                public const string DoNotGetUtcTimeFromDateTime = Prefix + "53";
                public const string DoNotGetUtcTimeFromDateTime_HelpUrl = HelpSite.HelpPageUrl + DoNotGetUtcTimeFromDateTime;

                public const string UseBuiltInFeatureInsteadOfStrings = Prefix + "54";
                public const string UseBuiltInFeatureInsteadOfStrings_HelpUrl = HelpSite.HelpPageUrl + UseBuiltInFeatureInsteadOfStrings;

                public const string UseBuiltInPublishingFieldInsteadOfStrings = Prefix + "55";
                public const string UseBuiltInPublishingFieldInsteadOfStrings_HelpUrl = HelpSite.HelpPageUrl + UseBuiltInPublishingFieldInsteadOfStrings;

                public const string UseBuiltInFieldInsteadOfStrings = Prefix + "56";
                public const string UseBuiltInFieldInsteadOfStrings_HelpUrl = HelpSite.HelpPageUrl + UseBuiltInFieldInsteadOfStrings;

                public const string ProcessingIdParameterForAddWorkItemShouldBeEmpty = Prefix + "57";
                public const string ProcessingIdParameterForAddWorkItemShouldBeEmpty_HelpUrl = HelpSite.HelpPageUrl + ProcessingIdParameterForAddWorkItemShouldBeEmpty;

                public const string DoNotUseSPContentTypeFieldsToAddOrDelete = Prefix + "58";
                public const string DoNotUseSPContentTypeFieldsToAddOrDelete_HelpUrl = HelpSite.HelpPageUrl + DoNotUseSPContentTypeFieldsToAddOrDelete;

                public const string UnsafeCastingInItemReceiver = Prefix + "59";
                public const string UnsafeCastingInItemReceiver_HelpUrl = HelpSite.HelpPageUrl + UnsafeCastingInItemReceiver;
                
            }

            public static class Feature
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.Feature;

                public const string SPSiteFeatureShouldNotBeActivatedFromCode = Prefix + "01";
                public const string SPSiteFeatureShouldNotBeActivatedFromCode_HelpUrl = HelpSite.HelpPageUrl + SPSiteFeatureShouldNotBeActivatedFromCode;

                public const string FeatureShouldHaveNotEmptyImageUrl = Prefix + "02";
                public const string FeatureShouldHaveNotEmptyImageUrl_HelpUrl = HelpSite.HelpPageUrl + FeatureShouldHaveNotEmptyImageUrl;


                /* fill the gap 03 and 04 */

                public const string MagicStringShouldNotBeUsed = Prefix + "05";
                public const string MagicStringShouldNotBeUsed_HelpUrl = HelpSite.HelpPageUrl + MagicStringShouldNotBeUsed;

                public const string FeatureAlwaysForceInstall = Prefix + "06";
                public const string FeatureAlwaysForceInstall_HelpUrl = HelpSite.HelpPageUrl + FeatureAlwaysForceInstall;
            }

            public static class JavaScriptFile
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.JavaScriptFile;

                public const string AvoidDollarGlobalVariableInJSFile = Prefix + "01";
                public const string AvoidDollarGlobalVariableInJSFile_HelpUrl = HelpSite.HelpPageUrl + AvoidDollarGlobalVariableInJSFile;

                public const string AvoidJQueryDocumentReadyInJSFile = Prefix + "02";
                public const string AvoidJQueryDocumentReadyInJSFile_HelpUrl = HelpSite.HelpPageUrl + AvoidJQueryDocumentReadyInJSFile;

            }

            public static class Module
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.Module;

                public const string AvoidAllUsersWebPartInModules = Prefix + "01";
                public const string AvoidAllUsersWebPartInModules_HelpUrl = HelpSite.HelpPageUrl + AvoidAllUsersWebPartInModules;

                public const string AvoidXsltForSharePoint2013 = Prefix + "02";
                public const string AvoidXsltForSharePoint2013_HelpUrl = HelpSite.HelpPageUrl + AvoidXsltForSharePoint2013;

                public const string AvoidInfoPathForms = Prefix + "03";
                public const string AvoidInfoPathForms_HelpUrl = HelpSite.HelpPageUrl + AvoidInfoPathForms;
            }

            public static class CustomAction
            {
                private const string Prefix = SPCAFContribRulePrefix + SPCAFContribCategory + InspectedSPElement.CustomAction;

                public const string CustomActionURLTypos = Prefix + "01";
            }
        }

        public static class Metrics
        {
            public static class Assembly
            {
                private const string Prefix = SPCAFContribMetricPrefix + SPCAFContribCategory + InspectedSPElement.Assembly;

                public const string NumberOfControlTemplates = Prefix + "01";
                public const string NumberOfControlTemplates_HelpUrl = HelpSite.HelpPageUrl + NumberOfControlTemplates;

                public const string NumberOfExternalDlls = Prefix + "02";
                public const string NumberOfExternalDlls_HelpUrl = HelpSite.HelpPageUrl + NumberOfExternalDlls;

                public const string NumberOfLayoutsPages = Prefix + "03";
                public const string NumberOfLayoutsPages_HelpUrl = HelpSite.HelpPageUrl + NumberOfLayoutsPages;

                public const string NumberOfMasterPages = Prefix + "04";
                public const string NumberOfMasterPages_HelpUrl = HelpSite.HelpPageUrl + NumberOfMasterPages;

                public const string NumberOfXsltFiles = Prefix + "05";
                public const string NumberOfXsltFiles_HelpUrl = HelpSite.HelpPageUrl + NumberOfXsltFiles;

                public const string SPMonitoredScopeMetric = Prefix + "06";
                public const string SPMonitoredScopeMetric_HelpUrl = HelpSite.HelpPageUrl + SPMonitoredScopeMetric;

                public const string NumberOfBreakInheritances = Prefix + "07";
                public const string NumberOfBreakInheritances_HelpUrl = HelpSite.HelpPageUrl + NumberOfBreakInheritances;

                public const string SearchQueryIsUsed = Prefix + "08";
                public const string SearchQueryIsUsed_HelpUrl = HelpSite.HelpPageUrl + SearchQueryIsUsed;

            }
        }

        public static class Inventory
        {
            public static class Assembly
            {
                private const string Prefix = SPCAFContribInventoryPrefix + SPCAFContribCategory + InspectedSPElement.Assembly;

                public const string SearchProperties = Prefix + "01";
                public const string SearchProperties_HelpUrl = HelpSite.HelpPageUrl + SearchProperties;

                public const string UserProfileProperties = Prefix + "02";
                public const string UserProfileProperties_HelpUrl = HelpSite.HelpPageUrl + UserProfileProperties;

                public const string CustomMasterPages = Prefix + "03";
                public const string CustomMasterPages_HelpUrl = HelpSite.HelpPageUrl + CustomMasterPages;

                public const string PropertyBagUsage = Prefix + "04";
                public const string PropertyBagUsage_HelpUrl = HelpSite.HelpPageUrl + PropertyBagUsage;

                public const string QueryStringUsage = Prefix + "05";
                public const string QueryStringUsage_HelpUrl = HelpSite.HelpPageUrl + QueryStringUsage;

                public const string ListOfConsts = Prefix + "06";
                public const string ListOfConsts_HelpUrl = HelpSite.HelpPageUrl + ListOfConsts;

                public const string ListOfStrings = Prefix + "07";
                public const string ListOfStrings_HelpUrl = HelpSite.HelpPageUrl + ListOfStrings;
            }

            public static class Controls
            {
                private const string Prefix = SPCAFContribInventoryPrefix + SPCAFContribCategory + InspectedSPElement.Control;

                public const string DelegateControls = Prefix + "01";
                public const string DelegateControls_HelpUrl = HelpSite.HelpPageUrl + DelegateControls;
            }
        }
    }
}
